(function(angular) {
	'use strict';
	angular.module('fs.waf').controller('waf.test.pti.limitController', function($scope, $timeout) {
		$scope.date = new Date();
		$scope.limitTreeApi = {};
		$scope.limitSelected = function(limit) {
			if (limit.data.category == 'list') {
				$scope.go('waf.test.pti.limit.list', limit);
			} else if (limit.data.category == 'view') {
				$scope.go('waf.test.pti.limit.view', limit);
			} else if (limit.data.category == 'edit') {
				$scope.go('waf.test.pti.limit.edit', limit);
			} else {
				$scope.go('waf.test.pti.limit.list', limit);
			}
		};
		$scope.limitData = [ {
			label : 'limit list',
			data : {
				limitId : 1,
				category : 'list',
				description : 'limit description'
			},
			children : [ {
				label : 'limit 1',
				data : {
					limitId : 1,
					category : 'list',
					description : 'limit description'
				}
			}, {
				label : 'limit 2',
				data : {
					limitId : 2,
					category : 'list',
					description : 'limit description'
				},
				children : [ {
					label : 'limit 2.1',
					data : {
						limitId : 21,
						category : 'list',
						description : 'limit description'
					}
				}, {
					label : 'limit 2.2',
					data : {
						limitId : 22,
						category : 'list',
						description : 'limit description'
					}
				}, {
					label : 'limit 2.3',
					data : {
						limitId : 23,
						category : 'list',
						description : 'limit description'
					}
				} ]
			} ]
		}, {
			label : 'limit View',
			data : {
				limitId : 3,
				category : 'view',
				description : 'limit description'
			},
			children : [ {
				label : 'limit 1',
				data : {
					limitId : 3,
					category : 'view',
					description : 'limit description'
				}
			}, {
				label : 'limit 2',
				data : {
					limitId : 31,
					category : 'view',
					description : 'limit description'
				},
				children : [ {
					label : 'limit 2.1',
					data : {
						limitId : 31,
						category : 'view',
						description : 'limit description'
					}
				}, {
					label : 'limit 2.2',
					data : {
						limitId : 42,
						category : 'view',
						description : 'limit description'
					}
				}, {
					label : 'limit 2.3',
					data : {
						limitId : 43,
						category : 'view',
						description : 'limit description'
					}
				} ]
			} ]
		}, {
			label : 'limit Edit',
			data : {
				limitId : 5,
				category : 'edit',
				description : 'limit description'
			},
			children : [ {
				label : 'limit 1',
				data : {
					limitId : 5,
					category : 'edit',
					description : 'limit description'
				}
			}, {
				label : 'limit 2',
				data : {
					limitId : 6,
					category : 'edit',
					description : 'limit description'
				},
				children : [ {
					label : 'limit 2.1',
					data : {
						limitId : 61,
						category : 'edit',
						description : 'limit description'
					}
				}, {
					label : 'limit 2.2',
					data : {
						limitId : 62,
						category : 'edit',
						description : 'limit description'
					}
				}, {
					label : 'limit 2.3',
					data : {
						limitId : 63,
						category : 'edit',
						description : 'limit description'
					}
				} ]
			} ]
		} ];
		return $scope.addLimit = function() {
			var selectedLimit = $scope.limitTreeApi.get_selected_branch();
			return $scope.limitTreeApi.add_branch(selectedLimit[0], {
				label : 'New Limit',
				data : {
					category : selectedLimit[0].data.category,
					description : 'limit description'
				}
			});
		};
	});
})(angular);